/*
    这个 src/components/index.ts 文件是一个全局组件注册插件，它的作用是将项目中的组件统一注册为全局组件，
    这样你就可以在任何Vue组件中直接使用这些组件，而不需要在每个文件中单独导入。
 */

//引入项目中全部的全局组件
import SvgIcon from './SvgIcon/index.vue';
import Pagination from './Pagination/index.vue'
import Category from './Category/index.vue';
//引入element-plus提供全部图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
//全局对象
const allGlobalComponent: any = { SvgIcon, Pagination, Category };
//对外暴露插件对象
export default {
    //务必叫做install方法
    install(app: any) {
        //注册项目全部的全局组件
        Object.keys(allGlobalComponent).forEach(key => {
            //注册为全局组件
            app.component(key, allGlobalComponent[key]);
        });
        //将element-plus提供图标注册为全局组件,可以在任何地方使用小图标
        for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
            app.component(key, component)//遍历每个图标组件,将它们注册为全局组件
        }
    }
}
